package scenic.path;

import java.awt.Rectangle;

import scenic.geom.Affine2;
import scenic.geom.Double2;

/**
 * This is the base interface for different kinds of segments.
 */
public interface Segment {
	/**
	 * Walks the given walker through this segment.
	 * 
	 * @param walker the walker.
	 * @param position the start position.
	 * @param error the error matrix.
	 */
	void walk(PathWalker walker, Double2 position, Affine2 error);
	/**
	 * Gets the bounds of this segment using the given transform.
	 * 
	 * @param transform the transform
	 * @param r the bounds.
	 * @param position the start position.
	 */
	void getBounds(Affine2 transform, Rectangle r, Double2 position);
}
